//导入Vue
import Vue from 'vue'
//导入Vuex
import Vuex from 'vuex'
//Vuex注册到Vue
Vue.use(Vuex)
//创建store对象
/*
    Vuex.Store(参数)
    该参数是一个配置对象,配置对象常用的属性
    state:用来管理vuex仓库(store)中的状态，它是一个对象
    mutations:用来操作state的选项，它也是一个对象
*/
const store=new Vuex.Store({
    state:{
        num:10
    },
    mutations:{
        /*
            mutations选项中的方法的参数有两个
            参数1：state:仓库中的state
            参数2：payload:外部传递的值
        */
        INCREMENT_NUM(state,payload){
            console.log('-----------mutations中的INCREMENT_NUM-------------');
            console.log('payload',payload);
            state.num=state.num+payload
        }
    },
    actions:{
        /*
            actions选项中的方法的参数
            参数1：store仓库上下文对象
            参数2：payload:外部传递进来的数据
        */
        incrementAsync(context,payload){
            console.log('--------actions中的incrementAsync-----------------');
            console.log('context',context);
            console.log('payload',payload);
            setTimeout(() => {
                //异步操作
                 context.commit('INCREMENT_NUM',payload) 
            }, 5000);
        }
    }
})
//将store导出
export default store